#ifndef HINTMANAGER_H
#define HINTMANAGER_H

#include "appGlobals.h"
#include <QObject>

class MainWindow;
class HintManager;

class HintState : public QObject
{
	Q_OBJECT
public:
	HintState(const QString& hintText, QObject* parent);
	void appendHighlightedObject(QPointer<QObject> object);

	HintManager& hintManager();

	void update();

	void paint(QPainter& painter);
private:
	QString m_hintText;
	QList<QPointer<QObject> > m_highlightedObjects;
};

class HintManager : public QObject
{
	Q_OBJECT

public:
	HintManager(QObject *parent);

	MainWindow& mainWindow();
	void paint(QPainter& painter);

private:
	QPointer<HintState> m_stateCreateNewProject;
	QTimer m_timer;
private slots:
	void onTimer();
};

#endif // HINTMANAGER_H
